<?php
session_start();
$event = new eventoModel();

//Recebe o array passado pelo script com o metodo post
extract($_POST);


    $idEvento=$_SESSION['idEvento'];

//Verifica se o array dados existe
if(isset($dados)){
    
    //var_dump($dados);//exibi conteudo do array, para testes
    
    //Inicialização da variável que irá fazer a consulta no BD
    $sql="";
    
    //opções para o array dados: 
    //$dados[0]=escolhe função:0-atualizar tabela, 1-ler Numero de linhas, 2-Deletar item
    //$dados[1]=pesquisa busca pelo input digitado
    //$dados[2]=ordena a tabela
    if($dados[0] == 0){
        
        //Se o combo status for selecionado, diferente de vazio
        if($dados[1]!= ""){
            $sql = "where tbEventoStatus = $dados[1]";
            
            //se o input tema estiver preenchido acrescenta LIKE à consulta sql
            if($dados[2] != "")
                $sql = $sql . " AND tbEventoTema LIKE '%$dados[2]%'";
        }
        
        //para o caso do input tema estiver preenchido e o combo status nao estiver selecionado
        if($dados[1]== "" && $dados[2] != ''){
            $sql= $sql . "where tbEventoTema LIKE '%$dados[2]%'";
        }
        
        //Chama o metodo que atualiza a tabela na pagina eventos.php
        $event->listar($sql . " ORDER BY tbEvento$dados[3]");
        
        //Grava o conteudo da variavel sql para exibir a quantidade de linhas no proximo passo do script
        $_SESSION['sql']=$sql;	
    }
    
    //Retorna a quantidade de linhas para ser exibido no rodapé
    if($dados[0] == 1){
        $sql = $_SESSION['sql'];	
        echo $event->numLinhas($sql)." registro(s) encontrado(s)";
    }
    
    //Executa a função del() para excluir evento com o id selecionado
    if($dados[0] == 2){
        $event->del($dados[1]);
    }
}    

//usado para executar as funções dos formulários de inserir ou editar dados
extract($_GET);
if(isset($f)){
    if($f == 0){
        $event->inserir();
    }
    if($f == "1"){
        $event->editar($idEvento);
    }
}
    
class eventoModel{
    private $crud;
    
    //Metodo construtor da classe
    public function __construct(){
        //Classe que tem acesso direto ao banco de dados
        include 'conexaoMysql.php';
        $this->crud = new Crud();
    }
    
    //funcao que informa a quantidade de registros encontrados
    function numLinhas($sql, $tabela='tbEvento'){
        return mysql_num_rows($this->crud->ler($tabela,'*', $sql)); 
    }
    
    function ler($sql=""){
         return $this->crud->ler('tbEvento','*',$sql);
        
    }

    //funcao que atualiza a tabela
    function listar($sql=""){
        $res = $this->crud->ler('tbEvento','*',$sql);
        
        //Usada para fazer o efeito zebra na tabela
        $div = 0;
        
        //relaciona a tabela
        while ($linha = mysql_fetch_array($res)){
             if($div%2 == 0) echo "<tr class=zebra0>"; else echo "<tr class=zebra1>"; $div++; 
		echo "<td>$linha[tbEventoId]</td>";
                echo "<td>$linha[1]</td>";
                echo "<td>$linha[2]</td>";
                echo "<td>".  $this->crud->inverterdata($linha[3],"-"). "</td>";
                echo "<td>". $this->crud->inverterdata($linha[4],"-"). "</td>";
                echo "<td>$linha[5]</td>";
                echo "<td>$linha[6]</td>";
                echo "<td>$linha[tbEventoEntidadePromovedora]</td>";
                echo "<td><a   href=eventosDetalhar.php?tbEventoId=$linha[0]><img style=vertical-align: middle src=../images/det.png> </a>
                      <a  id=s2 href=eventosFormEdit.php?tbEventoId=$linha[0]><img style=vertical-align: middle src=../images/edit.png> </a>    
                      <a  onclick='confirmExclusao($linha[0])'><img style=vertical-align: middle src=../images/del.png> </a></td>";
        }
    }
    
    function inserir(){
        extract($_POST);
		
        $dtinicio = $this->crud->inverterData($tbEventoDataInicio);
        $dtfim = $this->crud->inverterData($tbEventoDataFim);
        $this->crud->inserir('tbEvento', 
                 'tbEventoTema,    tbEventoDescricao,   tbEventoDataInicio,    tbEventoDataFim,   tbEventoCidade,   
                  tbEventoEstado,   tbEventoNumEdicao, tbEventoLocal, tbEventoEntidadePromovedora, tbEventoNumVagas,
				  tbEventoEndereco, tbEventoBairro, tbEventoNumResidencial, tbEventoCep, tbEventoEmail,
				  tbEventoUrl, tbEventoFoneContato, tbEventoFax', 
                "'$tbEventoTema','$tbEventoDescricao','$dtinicio', '$dtfim','$tbEventoCidade',
                 '$tbEventoEstado','$tbEventoNumEdicao', '$tbEventoLocal', '$tbEventoEntidadePromovedora', '$tbEventoNumVagas',
				 '$tbEventoEndereco', '$tbEventoBairro', '$tbEventoNumResidencial', '$tbEventoCep', '$tbEventoEmail',
				 '$tbEventoUrl', '$tbEventoFoneContato', '$tbEventoFax'");
                header("location:eventos.php");
				
    }
    
    function editar($idEvento){
        extract($_POST);
        $tbEventoDataFim =  $this->crud->inverterData($tbEventoDataFim);
        $tbEventoDataInicio =  $this->crud->inverterData($tbEventoDataInicio);
            $this->crud->alterar('tbEvento', 
                "tbEventoTema       = '$tbEventoTema',    
                 tbEventoDescricao  = '$tbEventoDescricao',   
                 tbEventoDataInicio = '$tbEventoDataInicio',
                 tbEventoDataFim    = '$tbEventoDataFim',  
                 tbEventoCidade     = '$tbEventoCidade',  
                 tbEventoEstado     = '$tbEventoEstado',
                 tbEventoNumEdicao  = '$tbEventoNumEdicao', 
                 tbEventoEntidadePromovedora = '$tbEventoEntidade',
                 tbEventoNumVagas   = '$tbEventoVagas',
                 tbEventoLocal      = '$tbEventoLocal' ", 
            "where tbEventoId = $idEvento");
            header("location:eventoN.php");
    }

    function del($id){
        //Verifica se existe algum curso relacionado ao evento selecionado para exclusão
        $res = $this->numLinhas("where tbCursosIdEvento = $id", 'tbCursos');
        
        //deleta o evento apenas se a qantidade de curso relacionado ao evento for 0 
        if($res==0){
            $this->crud->apagar('tbEvento', "where tbEventoId = $id");
            echo "<script>alert('Evento excluido com sucesso!!!');
                          atualizaTabela();";
        }else{
            echo "<script>alert('Evento possui Sub-evento(s) relacionado(s)'); 
                //location.href='eventos.php'
                </script>";
       }
    }
}